namespace G1.EngineV
{

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    using Android.Graphics;
    using Android.Util;

    public abstract class Sprite
    {

        internal Asset GraphicAsset { get; set; }

        public int Left { get; set; }
        public int Top { get; set; }
        public int Width { get; set; }
        public int Height { get; set; }

        public bool Visible { get; set; }

        public abstract void Update();
        public abstract void Render( Canvas Canvas );
        public abstract void SetGraphicAsset( Asset Asset );

        public String Tag = "";

        public bool TestPoint( float X, float Y )
        {
            return X > this.Left && X < this.Left + this.Width && Y > this.Top && Y < this.Top + this.Height;
        }

    }
}